[レポート] Dive deep on Amazon S3 のセッションに参加してきました! #STG302 #AWSreInvent

[レポート] Dive deep on Amazon S3 のセッションに参加してきました! #STG302 #AWSreInvent

Clock Icon2024.12.04

こんにちは、コンサル部@大阪オフィスのTodaです。

今日は「Amazon S3 を詳しく知る」というセッションに参加しましたので内容についてレポートします。

公式セッション紹介(日本語訳)

・Session Title
STG302 | Dive deep on Amazon S3

・Session Details
Join this session to learn how CarGurus uses AWS machine learning services and streaming analytics to enhance the digital customer experience in the online car-shopping process. CarGurus has undertaken a journey to build its machine learning (ML) platform on AWS. Learn how CarGurus applies ML and real-time analytics to power its online marketplace, including pricing insights and personalized vehicle recommendations. Utilizing AWS services including Amazon SageMaker, CarGurus provides car buyers with accelerated vehicle search functionality, improved guidance on well-priced vehicles, relevant vehicle suggestions, and offers well-placed and well-timed promotional offers.

STG302 | Amazon S3 を詳しく知る

Amazon S3 は、業界をリードするスケーラビリティ、耐久性、セキュリティ、パフォーマンスを実現するクラウド オブジェクト ストレージを開発者や IT チームに提供します。Amazon S3 は、数百万台のハードドライブで 1 秒あたり平均 1 億 5,000 万件以上のリクエストを処理し、世界最大級のワークロードの一部を処理します。このセッションでは、Amazon S3 チームのエンジニアリング リーダーが Amazon S3 の内部の仕組みについて詳しく説明します。大規模なストレージ システムを運用する背後にあるエンジニアリングの原則と、それがあらゆる規模の顧客にどのようなメリットをもたらすかを学びます。

セッションの概要

このセッションは、Amazon S3のスケールがどのようにして顧客に利益をもたらすかを技術的な観点から解説開設した内容になっています。
特に、データの物理的特性、シャッフルシャーディング、フォールトトレランス、効率的なリソース管理について深掘りをしながら説明を進めていきます。

セッションの説明・レポート

当セッションではSeth Markle氏 (Amazon シニアプリンシパルエンジニア) とJames Bornholt氏 (Amazon プリンシパルエンジニア) 2名でのセッションになっています。
簡単な自己紹介がありMarkle氏は 本日発表され S3 MetaData、Bornholt氏はS3 Table携わっているとのことでした。

20241203-reInvent-STG302-00

アジェンダの内容は下記になっておりS3の話の前にデータの物理学に関してハードディスクの構造などが説明された後に詳細な内容に入っております。
なお、当セッションレポートでは「失敗のためのエンジニアリングは速度のためのエンジニアリングである」の部分は内容が難しく記載がきちんとできていません。
当内容にご興味がある方はぜひ、アーカイブの配信公開後に内容を見て頂けたらと思います。

  • データの物理学
  • 非相関システムの設計
  • 失敗のためのエンジニアリングは速度のためのエンジニアリングである

20241203-reInvent-STG302-03

データの物理学

当項目では、S3が400兆以上のオブジェクトを保持し、1日あたり2000億件以上のリクエストを処理出来ている点について
データの物理的特性(ハードドライブのシーク時間や回転待ち時間)を考慮し、効率的なストレージシステムを構築している点について紹介がありました。

20241203-reInvent-STG302-06

20241203-reInvent-STG302-04

物理ハードディスクに関しての構造周りの説明と回転待ち時間・シーク時間に関する内容が話されており動く図による説明もありわかりやすい内容となっております。
データを保管する際に利用するShardStoreに関する説明がありどのようにデータが処理されているかの内容が説明されています。
ShardStoreについては下記記事をご参考ください。

■ AWS is building a new storage backend for S3 on 40k lines of Rust
https://www.thestack.technology/aws-shardstore-s3/

20241203-reInvent-STG302-05

20241203-reInvent-STG302-07-01

続いて利用者: FINRA社に関する事例紹介があり 1PB / 1オブジェクト 10MBのファイルを安定した速度で処理出来ている例を紹介しています。
ちなみに20TBのハードディスクの場合、50台が必要になると説明されていましたので S3のハードディスクは1点20TBの物を利用しているのかな?という感じがしました。

20241203-reInvent-STG302-08

続いてデータをシャード(断片)に分割し、ストレージノード全体に分散することで、スループットを最大化する仕組みについて紹介がありました。
データを1HDDに格納するのではなく分散する事で回転待ち時間やシーク時間の影響をすくなくして速度を上げることが出来る点について説明されています。

20241203-reInvent-STG302-09

20241203-reInvent-STG302-10

非相関システムの設計

当項目ではシャッフルシャーディングの活用による容量アップのしやすさ向上とワークロードの相関を排除する点、フォールトトレランスによる耐久性の強化についての説明がされています。
S3に使われているストレージ格納用のラックケースは種類によっては1台が 4,500ポンド(2トン) 以上の重さの物もあるようです。
説明の中で床もそれに耐えれるようにしているんですよ〜という話が出ていて面白かったです。(耐えれなかったら床抜けちゃう)

20241203-reInvent-STG302-11

説明ではデータを格納する際に、1台のHDDで処理をした場合、容量がいっぱいになったら次のHDDに切り替えるなど処理が難しくなる点、またバックアップを想定して冗長化するとさらに複雑になる点が説明されています。
ここでシャッフルシャーディングを利用した分散格納する事で効率良く格納出来る点が説明されています。

20241203-reInvent-STG302-12

20241203-reInvent-STG302-13

続いてS3で利用されているドメインについて、Route53の設定含めS3の耐久性に関する説明がされました。
複数のS3サーバにデータが格納されることで1台のサーバでトラブルが起きても問題がない点が言われていました。
こちらは2台のサーバで分散をしていますが、実際はもっと多くの台数で分散しているのではないかと思われます。

20241203-reInvent-STG302-14

20241203-reInvent-STG302-15

20241203-reInvent-STG302-16

また、「2つのランダムな選択」のアルゴリズムを使用し、容量のバランスを最適化する点も説明をされておりShardStoreに関する説明がされています。

20241203-reInvent-STG302-17

20241203-reInvent-STG302-18

失敗のためのエンジニアリングは速度のためのエンジニアリングである

当項目ではAZ障害が発生した場合などでも維持を可能にするためのフォールトトレランスに関する説明がおこなわれました。
ただし、当項目は発表内容が旨く解釈が出来ず、セッションのリプレイが掲載された段階で再確認をして記載をしたいと考えています。

20241203-reInvent-STG302-19

20241203-reInvent-STG302-20

20241203-reInvent-STG302-21

20241203-reInvent-STG302-22

20241203-reInvent-STG302-23

20241203-reInvent-STG302-24

20241203-reInvent-STG302-25

20241203-reInvent-STG302-26

20241203-reInvent-STG302-27

20241203-reInvent-STG302-28

まとめ

Amazon S3のスケールは、単なるデータ保存の効率化だけでなく、顧客体験の向上にも寄与しています。
シャッフルシャーディングや比率コーディングを活用し、フォールトトレランスを確保しながら、効率的なリソース管理を実現。これにより、S3は多様なワークロードに対応し、信頼性とパフォーマンスを両立しています。

さいごに

今回は Amazon S3 を詳しく知るというセッションに関して参加をしてみました。
少し難しめのセッションに参加をしてみましたが、1つの分野に関して普段聞けない内部処理の話があり大変興味を引く内容となっておりました。

今回クラスメソッドからは 100名を超えるメンバーで参加をしております。
既にブログで出ています通り、参加メンバーはみんなクラニャンのジャケットを来て参加をしております。
現地に参加をされている方はぜひ、メンバーにお声がけを頂けたらと思います。

また、re:Invent終了後は参加メンバーにて各拠点毎にAWS re:Invent ふりかえり勉強会「re:Growth 2024」も各オフィスで開催を予定しております。
現地の様子を聞いてみたい方もぜひご参加頂けたらと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.